perm filename EP234[E,ALS] blob
sn#151488 filedate 1975-03-27 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 SPOOLC: OUTSTR [ASCIZ /
C00008 ENDMK
C⊗;
;SPOOLC: OUTSTR [ASCIZ /
;This command has not yet been implemented. The intent is to provide
;a fast way to spool a single page of a large file without leaving ETV.
;/]
AOS(P)
POPJ P,
EXTERN SPALL
IMPURE
SPOOLD: BLOCK 21
PURE
SPOOLC: MOVE T,EDFIL
MOVEM T,SPOOLD+7 ;Start with first cha. of real name
MOVE T,CURPAG
MOVE A,[POINT 6,SPOOLD+7,5] ;Use 1 character of name
PUSHJ P,NUMSIX ;Add the page number
MOVEI TT,'$'
SKIPA
IDPB TT,A
TLNE A,760000
JRST .-2 ;Fill out with '$' characters
MOVEI T,'LPT'
HRLZM T,SPOOLD+10 ;Six-bit file extension of source
SETZM SPOOLD+11
MOVE T,['SPLSYS']
MOVEM T,SPOOLD+12 ;Six-bit PPN of file
MOVE T,EDFIL
MOVEM T,SPOOLD+13 ;Alias name in six-bit
MOVE T,EDFIL+1
MOVEM T,SPOOLD+14 ;Alias extension in six-bit
MOVE T,EDFIL+2
MOVEM T,SPOOLD+15 ;Alias PPN in six-bit
MOVE T,CURPAG
HRLM T,SPOOLD+16 ;Page number in left half
MOVEI T,21
HRRM T,SPOOLD+16 ;Flags to print headings and delete file
SETZM SPOOLD+17
SETZM SPOOLD+20
OPEN DSKSP,[17↔'DSK '↔0]
JRST 4,.
MOVE TT,20 ;Limit times to try
SPOOLL: LOOKUP DSKSP,SPOOLD+7
JRST SPOOLW ;Safe to use this name
CLOSE DSKSP,
MOVEI T,1
ADDM T,SPOOLD+7
SOJG TT,SPOOLL
SPOOLE: OUTSTR [ASCIZ /
Something is wrong with the spooler. Try again later.
/]
AOS (P)
POPJ P,
SPOOLW: MOVE T,['SPLSYS']
MOVEM T,SPOOLD+12 ;Six-bit PPN of file
ENTER DSKSP,SPOOLD+7
JRST SPOOLE
SETZM OBLK
PUSHJ P,XWRBF2 ;To set up 0CNT and 0PNT for first load
MOVE T,[OBUF-1,,OBUF]
BLT T,OBUF+177 ;Clear buffer
MOVEI A,PAGE
MOVEI DSP,XWRDSP
MOVSI E,LSPC+NSPEC
MOVE G,OPNT
MOVN B,OCNT
MOVSI B,(B)
XWRP1: MOVEI C,14
IDPB C,G
AOBJN B,XWRLIN
PUSHJ P,XWRBUF
MOVE G,OPNT
MOVN B,OCNT
MOVSI B,(B)
XWRLIN: HRRZ A,(A)
CAIN A,BOTSTR
JRST XWRDON
SKIPGE T,1(A)
JRST XWRPM
MOVEI D,LLDESC(A)
TRNN T,777
TLOA D,350700
HRLI D,440700
HRRI B,
XWRLUP: ILDB C,D
TDNE E,CTAB(C)
XCT @CTAB(C)
IDPB C,G
XWRLP2: AOBJN B,XWRLUP
PUSHJ P,XWRBUF
MOVE G,OPNT
MOVN T,OCNT
HRLI B,(T)
JRST XWRLUP
XWRDSP: JRST XWRLIN
JRST 4,.
JFCL
MOVEI D, ;KILL NEXT ILDB
JRST XWRTAB
JRST 4,.
JRST 4,.
XWRTAB: IDPB C,G
HRROI C,-10
IORI C,(B)
SUB B,C
ADD D,BTAB2+10(C)
JUMPGE D,.+2
ADD D,[XOR 1]
SOJA B,XWRLP2
XCLOSO: MOVE D,OPNT
CAMN D,[700,,OBUF-1]
POPJ P,
TDZA T,T
IDPB T,D
TLNE D,760000
JRST .-2
HRLI D,1(D)
ADDI D,2
CAMG D,[OBUF+177,,OBUF+200]
SETZM -1(D)
CAMGE D,[OBUF+177,,OBUF+200]
BLT D,OBUF+177
XWRBUF: OUT DSKSP,[-200,,OBUF-1↔0]
XWRBF1: AOSA OBLK
JRST 4,.
XWRBF2: PUSH P,T
MOVEI T,200*5
MOVEM T,OCNT#
MOVE T,[700,,OBUF-1]
MOVEM T,OPNT#
MOVE T,[OBUF-1,,OBUF]
TLNE F,CLRBF
BLT T,OBUF+177
POP P,T
POPJ P,
XWRDON:
MOVEM G,OPNT
PUSHJ P,XCLOSO
CLOSE DSKSP,
POPJ P, ;SOME MORE COES IN HERE
XWRPM: HRRZ B,-1(P)
MOVN T,1(B)
PUSHJ P,WRCHK
LDB C,[341000,,LLDESC+LPMTXT+1(A)]
IMULI C,200*5
LDB E,[221200,,LLDESC+LPMTXT+1(A)]
ADDI C,(E)
CAIE T,(C)
JRST 4,.
MOVEM G,OPNT
PUSHJ P,XCLOSO
MOVE T,-1(P)
HRRZ T,(T)
MOVE C,OBLK
CAME C,1(T)
JRST 4,.
MOVEM T,-1(P)
MOVE G,OPNT
MOVN B,OCNT
MOVSI B,(B)
MOVSI E,LSPC+NSPEC
JRST XWRP1
PUSHJ P,SPALL
JUMP SPOOLD